指针可以简化一些C++编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。
每一个变量都有一个内存地址,每个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。
1 2 3 4 5 6 7 8 9 10 11
| int main(){ int var1; chat var2[10];
cout << "var1 变量的地址:"; cout << &var1 << endl;
cout << "var2 变量的地址:"; cout << &var2 << endl; return 0; }
|
通过以上,了解了审核是内存地址以及如何访问它。接下来我们看看什么是指针。
什么是指针?
指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。
1 2 3 4
| int *ip; /* 一个整型的指针 */ double *dp; /* 一个 double 型的指针 */ float *fp; /* 一个浮点型的指针 */ char *ch; /* 一个字符型的指针 */
|
所有指针的值的实际数据类型,不管是整形,浮点型,字符型,还是其他数据类型。都是一样的,都是一个代表内存地址的长的十六进制数。
不同数据类型的指针之间唯一的不同是,指针所指向的变量或常量的数据类型不同。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include <iostream> using namespace std; int main () { int var = 20; int *ip; ip = &var; cout << "Value of var variable: "; cout << var << endl; cout << "Address stored in ip variable: "; cout << ip << endl; cout << "Value of *ip variable: "; cout << *ip << endl; return 0; }
|
1
| ip = &var 即: '*ip' 和 var 的值相等
|
一. 指针的算数运算
指针是一个用数值表示的地址。因此,您可以对指针执行算术运算。
可以对指针进行四种算术运算:++、—、+、-。
C++ 指针的算术运算
int 是4个字节. char是一个字节